package com.ctshk.rpc.localfun.service;

import com.ctshk.common.model.PageResponse;
import com.ctshk.common.model.TokenUser;
import com.ctshk.rpc.localfun.dto.LocalFunProductDetail;
import com.ctshk.rpc.localfun.dto.LocalFunReservationGetOrderDTO;
import com.ctshk.rpc.localfun.dto.LocalFunReservationListDTO;
import com.ctshk.rpc.localfun.req.LocalFunReservationListReq;
import com.ctshk.rpc.localfun.req.LocalFunReservationOrderReq;

import java.util.List;

/**
 * @Description
 * @Author wansi <gaylen15527491065@yeah.net>
 * @Date 2021/3/25
 */
public interface ILocalFunReservationService {
    /**
     * 查询产品列表
     * @param reservationListReq
     * @param currentUser
     * @return
     */
    PageResponse<LocalFunReservationListDTO> queryList(LocalFunReservationListReq reservationListReq, TokenUser currentUser);

    /**
     * 预订中心推荐首页产品列表
     * @param tokenUser
     * @return
     */
    List<LocalFunReservationListDTO> recommendedList(TokenUser tokenUser);

    /**
     * 填写订单页-根据产品id获取订单信息
     * @param localFunReservationOrderReq
     * @return
     */
    LocalFunReservationGetOrderDTO getOrderInfo(LocalFunReservationOrderReq localFunReservationOrderReq);

    /**
     * 获取预订中心-产品详情
     * @param id
     * @param currentUser
     * @return
     */
    LocalFunProductDetail getLocalFunProductDetail(Long id, TokenUser currentUser);

    /**
     * 推荐产品列表优化
     * @param currentUser
     * @return
     */
    List<LocalFunReservationListDTO> recommendedList2(TokenUser currentUser);
}
